@@ -20,6 +20,7 @@ from utils.error.errno_utils import (AdministratorStatusCode, OperatorStatusCode  | 
            ||
| 20 | 20 | 
                ProductDistributorStatusCode, ProductModelStatusCode, SaleclerkStatusCode,  | 
            
| 21 | 21 | 
                UserStatusCode)  | 
            
| 22 | 22 | 
                from utils.redis.connect import r  | 
            
| 23 | 
                +from utils.redis.rkeys import MINI_PROGRAM_GIS_LIST  | 
            |
| 23 | 24 | 
                 | 
            
| 24 | 25 | 
                 | 
            
| 25 | 26 | 
                WECHAT = settings.WECHAT  | 
            
                @@ -266,7 +267,7 @@ def consumer_info_api(request):  | 
            ||
| 266 | 267 | 
                # return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)  | 
            
| 267 | 268 | 
                 | 
            
| 268 | 269 | 
                # 记录用户信息提交记录  | 
            
| 269 | 
                - ConsumeInfoSubmitLogInfo.objects.create(  | 
            |
| 270 | 
                + log = ConsumeInfoSubmitLogInfo.objects.create(  | 
            |
| 270 | 271 | 
                user_id=user_id,  | 
            
| 271 | 272 | 
                phone=purePhoneNumber,  | 
            
| 272 | 273 | 
                iv=iv,  | 
            
                @@ -349,6 +350,13 @@ def consumer_info_api(request):  | 
            ||
| 349 | 350 | 
                mssi.num += 1  | 
            
| 350 | 351 | 
                mssi.save()  | 
            
| 351 | 352 | 
                 | 
            
| 353 | 
                +            r.rpushjson(MINI_PROGRAM_GIS_LIST, {
               | 
            |
| 354 | 
                + 'brand_id': log.brand_id,  | 
            |
| 355 | 
                + 'lat': log.lat,  | 
            |
| 356 | 
                + 'lon': log.lon,  | 
            |
| 357 | 
                + 'ymd': ymd,  | 
            |
| 358 | 
                + })  | 
            |
| 359 | 
                +  | 
            |
| 352 | 360 | 
                # mssi2, _ = ConsumeModelSaleStatisticInfo.objects.select_for_update().get_or_create(  | 
            
| 353 | 361 | 
                # brand_id=brand.brand_id,  | 
            
| 354 | 362 | 
                # model_id=model.model_id,  | 
            
                @@ -219,24 +219,19 @@ def ymdtj(brand_id, ymd, lastymd):  | 
            ||
| 219 | 219 | 
                # 与上个统计周期数据的用户人数比例  | 
            
| 220 | 220 | 
                user_count_increase_pct = '%.2f' % (scan_user_count * 100.0 / last_scan_user_count) if last_scan_user_count != 0 else 0  | 
            
| 221 | 221 | 
                 | 
            
| 222 | 
                - # [经销商维度] 周期内镜头销售支数  | 
            |
| 223 | 
                - try:  | 
            |
| 224 | 
                - sell_volume_count = SaleStatisticInfo.objects.get(brand_id=brand_id, ymd=ymd).num  | 
            |
| 225 | 
                - except SaleStatisticInfo.DoesNotExist:  | 
            |
| 226 | 
                - sell_volume_count = 0  | 
            |
| 222 | 
                + # [消费者维度] 统计周期内型号扫描排行数据,请按顺序返回  | 
            |
| 223 | 
                +    current_models = ConsumeModelSaleStatisticInfo.objects.filter(brand_id=brand_id, ymd=ymd, status=True).order_by('-num')
               | 
            |
| 224 | 
                + models = [m.data for m in current_models[:20]]  | 
            |
| 227 | 225 | 
                 | 
            
| 228 | 
                - try:  | 
            |
| 229 | 
                - last_sell_volume_count = SaleStatisticInfo.objects.get(brand_id=brand_id, ymd=lastymd).num  | 
            |
| 230 | 
                - except SaleStatisticInfo.DoesNotExist:  | 
            |
| 231 | 
                - last_sell_volume_count = 0  | 
            |
| 226 | 
                + # [消费者维度] 周期内镜头销售支数  | 
            |
| 227 | 
                +    sell_volume_count = sum([m.get('num', 0) for m in current_models])
               | 
            |
| 228 | 
                +  | 
            |
| 229 | 
                +    last_models = ConsumeModelSaleStatisticInfo.objects.filter(brand_id=brand_id, ymd=lastymd, status=True).order_by('-num')
               | 
            |
| 230 | 
                + last_sell_volume_count = sum([m.num for m in last_models])  | 
            |
| 232 | 231 | 
                 | 
            
| 233 | 232 | 
                # 与上个统计周期数据的销售支数比例  | 
            
| 234 | 233 | 
                volume_count_increase_pct = '%.2f' % (sell_volume_count * 100.0 / last_sell_volume_count) if last_sell_volume_count != 0 else 0  | 
            
| 235 | 234 | 
                 | 
            
| 236 | 
                - # [消费者维度] 统计周期内型号扫描排行数据,请按顺序返回  | 
            |
| 237 | 
                -    models = ConsumeModelSaleStatisticInfo.objects.filter(brand_id=brand_id, ymd=ymd, status=True).order_by('-num')[:20]
               | 
            |
| 238 | 
                - models = [m.data for m in models]  | 
            |
| 239 | 
                -  | 
            |
| 240 | 235 | 
                # [经销商维度] 统计周期内销售员排行数据,请按顺序返回  | 
            
| 241 | 236 | 
                     salesmen = SaleclerkSaleStatisticInfo.objects.filter(brand_id=brand_id, ymd=ymd, status=True).order_by('-num')[:20]
               | 
            
| 242 | 237 | 
                salesmen = [s.data for s in salesmen]  |